import { utils } from 'cloudpivot/common';
import printSharedMethods from 'cloudpivot-list/list/src/components/pc/scripts/printSharedMethods';
import {
  workflowActionStatus,
  workItemStatus,
} from 'cloudpivot-flow/flow/src/typings/workflow-enum';

class WorkflowLogDataHandleExtension {
  /**
   * 全局默认的流程日志打印数据处理扩展
   * @param vm            当前所处实例对象：表单或视图列表
   * @param sourceData    原始数据：未经处理的流程日志数据
   * @param printData     打印数据：经过系统默认逻辑处理后的流程日志打印数据
   * @param locale        当前语言类型，zh（中文），en（英文），可选，默认为zh
   * @returns             返回自定义处理后的流程日志打印数据（不需要对所有数据都进行重新处理，最终打印的数据将合并本次处理数据及系统默认处理数据）
   */
  defaultHandle(vm: any, sourceData: any, printData: any, locale: string) {
    // 测试数据，验证后删除
    // console.log(vm, sourceData, printData, 'defaultHandle');
    // const resData: any = {
    //   // 重新处理原始数据，例：调整接受时间、结束时间的展示格式
    //   receiveTime: sourceData.receiveTime
    //     ? utils.DateHandle.dateFormat(
    //         new Date(sourceData.receiveTime.replace(/-/g, '/')),
    //         'YYYY年MM月DD日',
    //       )
    //     : '',
    //   finishTime: sourceData.finishTime
    //     ? utils.DateHandle.dateFormatApm(
    //         new Date(sourceData.finishTime.replace(/-/g, '/')),
    //         'YYYY-MM-DD CN-APM HH:mm',
    //       )
    //     : '',
    //   // 对扩展的字段做数据处理：例扩展字段workItemStatus
    //   workItemStatus: workItemStatus[sourceData.workItemStatus.toString()]
    //     ? vm.$t(
    //         `languages.common.WorkItemStatus.${
    //           workItemStatus[sourceData.workItemStatus.toString()]
    //         }`,
    //       )
    //     : '--',
    //   originatorMobile: sourceData.extInfo.originatorMobile,
    // };
    // return resData;
  }

  /**
   * 示例：针对某个模型的流程日志打印数据处理扩展
   * 方法名称格式为：模型编码
   */
  // ['lcrzkz_130404_01'](vm, sourceData, printData, locale) {
  //   return printData;
  // }

  /**
   * 示例：针对具体打印模板的流程日志打印数据处理扩展
   * 方法名称格式为：模型编码_打印模板编码
   */
  // ['lcrzkz_130404_01_lcrzkz_130404_01_print'](vm, sourceData, printData, locale) {
  //   return printData;
  // }
}

export const workflowLogDataHandleExtension =
  new WorkflowLogDataHandleExtension();
